package main

import (
	"fmt"
	"log"
	"net"
)

func main() {
	log.Println("服务的启动了")
	listen, err := net.Listen("tcp", "127.0.0.1:3000")
	if err != nil {
		log.Println("端口可能冲突,监听失败", err)
		return
	}
	log.Println("服务端监听成功,等待客户端连接...")

	// 一直循环监听
	for {
		con, err2 := listen.Accept()
		if err2 != nil {
			log.Println("客户端等待失败", err2)
		} else {
			//	连接成功
			fmt.Printf("等待成功,conn=%v,接受到的信息:%v \n", con, con.RemoteAddr().String())
		}
		go process(con)
	}

}

// 用于处理每一个接入进来的连接
func process(con net.Conn) {
	//	连接用完一定要关闭
	defer con.Close()

	for {
		//	创建一个切片,将数据放入切片
		buf := make([]byte, 1024)

		//	从conn连接中读取数据
		n, _ := con.Read(buf)

		//	将内容打印到控制台
		fmt.Printf(string(buf[0:n]))
	}
}
